home *** CD-ROM | disk | FTP | other *** search
/ Clickx 23 / Clickx 23.iso / DATA / BLENDE~1.ZIP / blender-2.37a-OSX-10.2-powerpc / plugins / sequence / showzbuf.c < prev   
Encoding:
C/C++ Source or Header  |  2005-06-15  |  3.0 KB  |  128 lines

  1. /**
  2.  * $Id: showzbuf.c,v 1.2 2004/01/28 19:25:32 sirdude Exp $
  3.  *
  4.  * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
  5.  *
  6.  * This program is free software; you can redistribute it and/or
  7.  * modify it under the terms of the GNU General Public License
  8.  * as published by the Free Software Foundation; either version 2
  9.  * of the License, or (at your option) any later version. The Blender
  10.  * Foundation also sells licenses for use in proprietary software under
  11.  * the Blender License.  See http://www.blender.org/BL/ for information
  12.  * about this.
  13.  *
  14.  * This program is distributed in the hope that it will be useful,
  15.  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  16.  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  17.  * GNU General Public License for more details.
  18.  *
  19.  * You should have received a copy of the GNU General Public License
  20.  * along with this program; if not, write to the Free Software Foundation,
  21.  * Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
  22.  *
  23.  * The Original Code is Copyright (C) 2001-2002 by NaN Holding BV.
  24.  * All rights reserved.
  25.  *
  26.  * The Original Code is: all of this file.
  27.  *
  28.  * Contributor(s): none yet.
  29.  *
  30.  * ***** END GPL/BL DUAL LICENSE BLOCK *****
  31.  */
  32.  
  33. #include <stdio.h>
  34. #include "plugin.h"
  35.  
  36. /* ******************** GLOBAL VARIABLES ***************** */
  37.  
  38.  
  39. char name[24]= "showzbuf";
  40.  
  41. /* structure for buttons, 
  42.  *  butcode      name           default  min  max  0
  43.  */
  44.  
  45. VarStruct varstr[]= {
  46.     {NUMSLI|FLO,    "width ",        1.0,    0.0, 10.0, "This button is obsolete!"}
  47. };
  48.  
  49. /* The cast struct is for input in the main doit function
  50.    Varstr and Cast must have the same variables in the same order */ 
  51.  
  52. typedef struct Cast {
  53.     float width;
  54. } Cast;
  55.  
  56. /* cfra: the current frame */
  57.  
  58. float cfra;
  59.  
  60. void plugin_seq_doit(Cast *, float, float, int, int, ImBuf *, ImBuf *, ImBuf *, ImBuf *);
  61.  
  62. /* ******************** Fixed functions ***************** */
  63.  
  64. int plugin_seq_getversion(void) 
  65. {
  66.     return B_PLUGIN_VERSION;
  67. }
  68.  
  69. void plugin_but_changed(int but) 
  70. {
  71. }
  72.  
  73. void plugin_init()
  74. {
  75. }
  76.  
  77. void plugin_getinfo(PluginInfo *info)
  78. {
  79.     info->name= name;
  80.     info->nvars= sizeof(varstr)/sizeof(VarStruct);
  81.     info->cfra= &cfra;
  82.  
  83.     info->varstr= varstr;
  84.  
  85.     info->init= plugin_init;
  86.     info->seq_doit= (SeqDoit) plugin_seq_doit;
  87.     info->callback= plugin_but_changed;
  88. }
  89.  
  90. /* ************************************************************
  91.     Show Zbuffer
  92.     
  93.     Demonstration of usage of the 32 bits zbuffer input.
  94.     remember: z-values are not linear...
  95.     
  96.     Z values are only displayed when the input is a Scene-strip
  97.     or when images were saved in IRIZ format.
  98.     
  99.    ************************************************************ */
  100.  
  101.  
  102. void plugin_seq_doit(Cast *cast, float facf0, float facf1, int sx, int sy, ImBuf *ibuf1, ImBuf *ibuf2, ImBuf *out, ImBuf *use)
  103. {
  104.     int a;
  105.     int *rectz;    
  106.     char *rectc;
  107.     
  108.     if(ibuf1) {
  109.         if(ibuf1->zbuf==0) {
  110.             printf("no zbuf\n");
  111.             return;
  112.         }
  113.         
  114.         a= ibuf1->x*ibuf1->y;
  115.         rectz= ibuf1->zbuf;
  116.         rectc= (char *)out->rect;
  117.         
  118.         while(a--) {
  119.             rectc[0]= 255;
  120.             rectc[1]= rectc[2]= rectc[3]= (rectz[0]>>18);
  121.             rectc+= 4;
  122.             rectz++;
  123.         }
  124.     }
  125.  
  126. }
  127.  
  128.